فرق بین انتیتی فریم ورک با LINQ چیست
فرق بین انتیتی فریم ورک با LINQ چیست
فرق بین انتیتی فریم ورک با LINQ چیست
ببینید برای اینکه فرق بین انتیتی فریم ورک با Linq رو متوجه بشید ابتدا باید مفهوم و کاربرد اینها رو بدونید. بنابراین ابتدا تعریفی از Entity Framework و Linq رو براتون میگم و بعد به تفاوت اونها می پردازم.
انتیتی فریم ورک چیست ؟
انتیتی فریم ورک یا Entity Framework یک ORM هست. معنی ORM خیلی ساده هست. ORM در واقع یک تکنولوژی هست که به نرم افزار ما که میتونه تحت وب یا تحت ویندوز باشه قابلیت اتصال و کار کردن با دیتابیس رو میده. یعنی ما برای کار با دیتابیس حتما باید از یک ORM استفاده کنیم.
- تعریف ORM : همونطور که در بالا گفتیم ORM امکان ارتباط بین دیتابیس و نرم افزار و همچنین امکان استفاده از دیتابیس در نرم افزار رو به ما میده. در واقع میشه گفت ORM یک لایه مترجم هست که بین دیتابیس و زبان برنامه نویسی قرار میگیره و بین این 2 ارتباط برقرار میکنه.
انواع ORM ها
خب ORM ها هم مثل زبان های برنامه نویسی نسل هایی رو طی کردن و کم کم پیشرفته تر شدن. برخی از ORM ها رو در ادامه میگم و توضیح خیلی مختصری از اونها هم میدم.
- ADO : یکی از ORM های قدیمی ADO هست. از این ORM برای ارتباط با بانک Sql Server استفاده میشد. این ORM خیلی از قابلیت ها مثل شبکه سازی نرم افزار رو نداشت.
- ADO.NET : این ORM نسخه بهتر و جدیدتر ADO هست. از طریق این نسخه یک قابلیت بسیار ویژه به نرم افزارها اضافه شد و آن هم ایجاد بسیار راحت نرم افزارهای تحت شبکه بود.
- OLEDBC : یکی دیگه از ORM ها هم OLEDBC بود که برای ارتباط با بانک Sql Server استفاده میشد. این ORM هم جزو تکنولوژی های قدیمی محسوب میشه.
- OLEDB : از این ORM برای ارتباط نرم افزار با دیتابیس اکسس استفاده میشه و هنوز هم کاربرد داره. این ORM قابلیت شبکه سازی نرم افزار رو نداره و برای دیتابیس های تک کاربره استفاده داره.
- Entity Framework : تقریبا میشه گفت از سال 2008 انتیتی فریم ورک کم کم جای بقیه ORM های ارتباط با Sql Server رو گرفت. مایکروسافت هم از این سال هیچ آپدیتی برای سایر ORM ها جز انتیتی فریم ورک ارائه نکرد. انیتی فریم ورک راه های گوناگونی را برای ارتباط بین نرم افزار و دیتابیس ارائه میکند که 2 مورد از مشهورترین و پر استفاده ترین آنها Code First و DB First می باشد.
خب تا اینجا با انتیتی فریم ورک آشنا شدید و فهمیدید که یک ORM هست. یعنی یک تکنولوژی هست که ارتباط بین دیتابیس و نرم افزار رو برقرار می کنه.
Linq چیست ؟
حالا ببینیم Linq چی هست ؟ ببینید همه ORM ها برای ایجاد ارتباط با دیتابیس و اینکه بتونن دستوراتی رو روی دیتابیس انجام بدن نیاز به یک زبان خاصی دارن. مثلا در ORM های قدیمی تر مثل ADO.Net ما برای اینکه بتونیم اطلاعات رو از دیتابیس نمایش بدیم یا اطلاعاتی رو در دیتابیس ذخیره کنیم یا ویرایش و حذف (CRUD) از زبان T-Sql استفاده می کردیم.
Select * From Table_Name
Delete From Table_Name
Insert Into Table_Name (col1,col2) Values ('val1','val2')
Update Table_Name Set col1 = 'val1'
این دستورات همون دستورات Sql هستن که در Ado.Net هم مستقیما برای ایجاد کوئری ازشون استفاده میشد.
اما توی انتیتی فریم ورک مایکروسافت اومد و مقداری تغییراتی رو ایجاد کرد. زبانی که مایکروسافت برای ایجاد پرس و جو در دیتابیس در انتیتی فریم ورک قرار داده Linq نام داره. پس Linq یک زبان هست که شما میتونید از طریق اون در دیتابیس عملیات CRUD رو انجام بدید.
from t in _db.Table_Name select t
حالا میشه به این سوال جواب داد که تفاوت انتیتی فریم ورک با Linq چی هست ؟
انیتی فریم ورک یک تکنولوژی یا ORM هست که توسط اون نرم افزار میتونه دیتابیس رو شناسایی کنه و ازش استفاده کنه ولی Linq یک زبان پرس و جو درون انیتی فریم ورک هست که برای انجام عملیات CRUD و سایر عملیاتی که روی دیتابیس انجام میشه کاربرد داره.
نکته : به Linq گاها Linq T oSql هم گفته میشه. برای اطلاعات بیشتر این لینک رو مطالعه بفرمایید.
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- مشکل تاریخ شمسی در سی شارپ
- نمایش گزارش stimulsoft روی کلاینت
- تفاوت های سی شارپ 8 با نسخه های قبلی چیه؟
- انتخاب چند سطر دلخواه توسط چک باکس در DataGrid و محاسبه جمع سطرهای انتخاب شده
- نمایش نوتیفکیشن در سی شارپ
- ارسال پارامتر از سی شارپ به استیمول سافت
- عدم نمایش عکس در دیتاگرید ویو در wpf
- Library Animation برای کنترلهای WPF
- رفع خطا در مایگریشن - Specify ON DELETE NO ACTION or ON UPDATE NO ACTION
- مشکل در تغییر مقدار Text کنترل RibbonBar در کامپوننت DevExpress